Smoking and human health in west virginia.

map1:Distribution of smokers in west virginia.

library(rgdal)
wv <- readOGR(".","rdata")
OGR data source with driver: ESRI Shapefile 
Source: ".", layer: "rdata"
with 55 features
It has 41 fields
df <- wv@data
df$smokers <- df$F__Smokers
library(tmap)
qtm(wv,fill = "F__Smokers")

MAP2:Years of potential life lost as a result of smoking.

###age adjusted rate YPLL per 100,000 
qtm(wv,fill = "Years_of_P")

cor.test(df$F__Smokers,df$Years_of_P)

    Pearson's product-moment correlation

data:  df$F__Smokers and df$Years_of_P
t = 5.7644, df = 53, p-value = 4.281e-07
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.425557 0.760776
sample estimates:
      cor 
0.6207699 
yearslost <- lm(df$Years_of_P~df$F__Smokers)
summary(yearslost)

Call:
lm(formula = df$Years_of_P ~ df$F__Smokers)

Residuals:
    Min      1Q  Median      3Q     Max 
-4548.2 -1202.4  -332.4  1209.5  5511.4 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)    -9359.8     3333.6  -2.808  0.00697 ** 
df$F__Smokers    814.2      141.2   5.764 4.28e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1943 on 53 degrees of freedom
Multiple R-squared:  0.3854,    Adjusted R-squared:  0.3738 
F-statistic: 33.23 on 1 and 53 DF,  p-value: 4.281e-07
plot(df$Years_of_P,df$F__Smokers)

print("Reject the null hypothesis.Therefore there is a strong positive correlation between smoking and no. of years of potential life lost.")
[1] "Reject the null hypothesis.Therefore there is a strong positive correlation between smoking and no. of years of potential life lost."
print("smoking explains 37.38 % of early mortality in smokers.")
[1] "smoking explains 37.38 % of early mortality in smokers."

map:3 smoking and low birthweight.

qtm(wv,fill = "Low_Birthw")

x<- df$F__Smokers
y <- df$F__LBW
plot(x,y)

print("there is a positive correlation between smoking and low birth weight.")
[1] "there is a positive correlation between smoking and low birth weight."
lbw <- lm(y~x)
summary(lbw)

Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.6399 -0.9224 -0.1083  0.9310  3.4069 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)   1.8156     2.4796   0.732  0.46727   
x             0.3128     0.1051   2.977  0.00438 **
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.445 on 53 degrees of freedom
Multiple R-squared:  0.1432,    Adjusted R-squared:  0.1271 
F-statistic: 8.861 on 1 and 53 DF,  p-value: 0.004383
print("smoking explains 12.71% of all lowbirthweights in smokers.")
[1] "smoking explains 12.71% of all lowbirthweights in smokers."

map4:smoking and fair/poor health.

qtm(wv,fill = "F__Fair_Po")

poor.health <- lm(df$F__Fair_Po~df$F__Smokers)
summary(poor.health)

Call:
lm(formula = df$F__Fair_Po ~ df$F__Smokers)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.5132 -0.9469  0.1661  0.9165  3.6962 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)     -2.444      2.926  -0.835    0.407    
df$F__Smokers    1.054      0.124   8.504 1.77e-11 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.706 on 53 degrees of freedom
Multiple R-squared:  0.5771,    Adjusted R-squared:  0.5691 
F-statistic: 72.31 on 1 and 53 DF,  p-value: 1.77e-11
 plot(df$F__Fair_Po,df$F__Smokers)

 print("there is a strong positive correlation between smoking and fair/poor health")
[1] "there is a strong positive correlation between smoking and fair/poor health"
 print("smoking accounts for 56.91% of poor health in smokers.")
[1] "smoking accounts for 56.91% of poor health in smokers."

map5:smoking and physically unhealthy days.

qtm(wv,fill = "Physically")

cor.test(df$F__Smokers,df$Physically)

    Pearson's product-moment correlation

data:  df$F__Smokers and df$Physically
t = 7.803, df = 53, p-value = 2.312e-10
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.5780032 0.8345841
sample estimates:
      cor 
0.7311794 
ph <- lm(df$Physically~df$F__Smokers)
summary(ph)

Call:
lm(formula = df$Physically ~ df$F__Smokers)

Residuals:
    Min      1Q  Median      3Q     Max 
-0.6976 -0.1841 -0.0047  0.1837  0.6342 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)    1.16950    0.49022   2.386   0.0207 *  
df$F__Smokers  0.16208    0.02077   7.803 2.31e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2857 on 53 degrees of freedom
Multiple R-squared:  0.5346,    Adjusted R-squared:  0.5258 
F-statistic: 60.89 on 1 and 53 DF,  p-value: 2.312e-10
plot(df$Physically,df$F__Smokers)
abline(ph,col="red")
segments(df$F__Smokers,fitted(ph),df$F__Smokers,df$Physically,col="red",lty = "dashed")

print("There is a strong positive correlation between smoking and the no. of physically unhealthy days.")
[1] "There is a strong positive correlation between smoking and the no. of physically unhealthy days."
print("smoking explains 52.58% of all physically unhealthy days in smokers.")
[1] "smoking explains 52.58% of all physically unhealthy days in smokers."

map6: smoking and mammography tests.

qtm(wv,fill = "F__Mammogr")

y<- df$F__Mammogr
x <- df$F__Smokers
cor.test(df$F__Mammogr,df$F__Smokers)

    Pearson's product-moment correlation

data:  df$F__Mammogr and df$F__Smokers
t = -3.2492, df = 53, p-value = 0.002012
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.6072033 -0.1595093
sample estimates:
       cor 
-0.4075596 
plot(x,y)
mammography <- lm(y~x)
summary(mammography)

Call:
lm(formula = y ~ x)

Residuals:
     Min       1Q   Median       3Q      Max 
-11.4618  -3.4095   0.0118   3.0098  12.3033 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  88.3637     9.2823   9.520 4.57e-13 ***
x            -1.2779     0.3933  -3.249  0.00201 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 5.41 on 53 degrees of freedom
Multiple R-squared:  0.1661,    Adjusted R-squared:  0.1504 
F-statistic: 10.56 on 1 and 53 DF,  p-value: 0.002012
abline(mammography,col="red")

print("There is a negative correlation between mammography tests and smoking.")
[1] "There is a negative correlation between mammography tests and smoking."
print("smoking explains 15.04% of all the mammography tests done on smokers.")
[1] "smoking explains 15.04% of all the mammography tests done on smokers."

map7:% of smokers in comparison to their employment status.

qtm(wv,fill="F__Unemplo")

y <- df$F__Unemplo
x <- df$F__Smokers
unemployment <- lm(y~x)
summary(unemployment)

Call:
lm(formula = y ~ x)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.9409 -1.3685 -0.4637  1.3116  4.2788 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  -5.3570     3.2020  -1.673 0.100212    
x             0.5569     0.1357   4.104 0.000141 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.866 on 53 degrees of freedom
Multiple R-squared:  0.2412,    Adjusted R-squared:  0.2269 
F-statistic: 16.85 on 1 and 53 DF,  p-value: 0.0001406
plot(y,x)

print("There is a strong positive correlation betwen smoking and unemployment.")
[1] "There is a strong positive correlation betwen smoking and unemployment."
print("Smoking explains 22.69% of all unempoyment status in smokers.")
[1] "Smoking explains 22.69% of all unempoyment status in smokers."

% of smokers in comparison to their education level.(The data for this graphs is from CDC,health department of west virginia state,summary statistics.)

library(plotly)
p <- plot_ly(
  x = c("less high school", "high school grad", "some college","college grad"),
  y = c(40, 28.2, 24.7,13.5),
  name = "education",
  type = "bar"
)
p

print("More education correlates with less smoking.")
[1] "More education correlates with less smoking."

% of smokers in comparison to their income levels.

library(plotly)
p <- plot_ly(
  x = c("less $25000", "$25-$49,999", "$50-74,999","75000 & abv"),
  y = c(38.7, 25.3, 18.9,14.3),
  name = "income",
  type = "bar"
)
p

print("High income correlates with less smoking.")
[1] "High income correlates with less smoking."

map 8:smoking and dentist rate visits.

qtm(wv,fill = "Dentist_Ra")

dental <- lm(df$Dentist_Ra~df$F__Smokers)
summary(dental)

Call:
lm(formula = df$Dentist_Ra ~ df$F__Smokers)

Residuals:
    Min      1Q  Median      3Q     Max 
-41.914 -14.236  -4.860   7.547  69.509 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)   
(Intercept)    124.723     39.789   3.135   0.0028 **
df$F__Smokers   -3.650      1.686  -2.165   0.0349 * 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 23.19 on 53 degrees of freedom
Multiple R-squared:  0.08127,   Adjusted R-squared:  0.06393 
F-statistic: 4.688 on 1 and 53 DF,  p-value: 0.03489
plot(df$Dentist_Ra,df$F__Smokers)
abline(dental,col="red")

cor.test(df$Dentist_Ra,df$F__Smokers)

    Pearson's product-moment correlation

data:  df$Dentist_Ra and df$F__Smokers
t = -2.1652, df = 53, p-value = 0.03489
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.51167605 -0.02139816
sample estimates:
      cor 
-0.285077 
t.crit <- qt(0.975,53)
t.crit
[1] 2.005746
print("very little negative correlation between dentist visit rates and smoking.")
[1] "very little negative correlation between dentist visit rates and smoking."

map9:smoking and mental health.

qtm(wv,fill = "Mental_Hea")

mental <- lm(df$Mental_Hea~df$F__Smokers)
summary(mental)

Call:
lm(formula = df$Mental_Hea ~ df$F__Smokers)

Residuals:
    Min      1Q  Median      3Q     Max 
-35.743 -31.670 -23.514  -3.381 257.947 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)
(Intercept)     64.096    104.291   0.615    0.541
df$F__Smokers   -1.227      4.419  -0.278    0.782

Residual standard error: 60.79 on 53 degrees of freedom
Multiple R-squared:  0.001452,  Adjusted R-squared:  -0.01739 
F-statistic: 0.07705 on 1 and 53 DF,  p-value: 0.7824
plot(df$Mental_Hea,df$F__Smokers)

print("There is no correlation between smoking and mental health.")
[1] "There is no correlation between smoking and mental health."
LS0tDQp0aXRsZTogIkZpbmFsIHByb2plY3QiDQphdXRob3I6ICJOZ2FyZSBXaW5uaWUiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgZGZfcHJpbnQ6IHBhZ2VkDQogICAgdG9jOiB5ZXMNCiAgaHRtbF9ub3RlYm9vazoNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQotLS0NCg0KDQojI1Ntb2tpbmcgYW5kIGh1bWFuIGhlYWx0aCBpbiB3ZXN0IHZpcmdpbmlhLiANCiMjbWFwMTpEaXN0cmlidXRpb24gb2Ygc21va2VycyBpbiB3ZXN0IHZpcmdpbmlhLg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkocmdkYWwpDQp3diA8LSByZWFkT0dSKCIuIiwicmRhdGEiKQ0KDQpkZiA8LSB3dkBkYXRhDQpkZiRzbW9rZXJzIDwtIGRmJEZfX1Ntb2tlcnMNCmxpYnJhcnkodG1hcCkNCnF0bSh3dixmaWxsID0gIkZfX1Ntb2tlcnMiKQ0KDQoNCmBgYA0KDQoNCg0KDQoNCg0KIyNNQVAyOlllYXJzIG9mIHBvdGVudGlhbCBsaWZlIGxvc3QgYXMgYSByZXN1bHQgb2Ygc21va2luZy4NCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIyNhZ2UgYWRqdXN0ZWQgcmF0ZSBZUExMIHBlciAxMDAsMDAwIA0KDQpxdG0od3YsZmlsbCA9ICJZZWFyc19vZl9QIikNCmNvci50ZXN0KGRmJEZfX1Ntb2tlcnMsZGYkWWVhcnNfb2ZfUCkNCnllYXJzbG9zdCA8LSBsbShkZiRZZWFyc19vZl9QfmRmJEZfX1Ntb2tlcnMpDQpzdW1tYXJ5KHllYXJzbG9zdCkNCnBsb3QoZGYkWWVhcnNfb2ZfUCxkZiRGX19TbW9rZXJzKQ0KcHJpbnQoIlJlamVjdCB0aGUgbnVsbCBoeXBvdGhlc2lzLlRoZXJlZm9yZSB0aGVyZSBpcyBhIHN0cm9uZyBwb3NpdGl2ZSBjb3JyZWxhdGlvbiBiZXR3ZWVuIHNtb2tpbmcgYW5kIG5vLiBvZiB5ZWFycyBvZiBwb3RlbnRpYWwgbGlmZSBsb3N0LiIpDQpwcmludCgic21va2luZyBleHBsYWlucyAzNy4zOCAlIG9mIGVhcmx5IG1vcnRhbGl0eSBpbiBzbW9rZXJzLiIpDQpgYGANCg0KIyNtYXA6MyBzbW9raW5nIGFuZCBsb3cgYmlydGh3ZWlnaHQuDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KcXRtKHd2LGZpbGwgPSAiTG93X0JpcnRodyIpDQp4PC0gZGYkRl9fU21va2Vycw0KeSA8LSBkZiRGX19MQlcNCnBsb3QoeCx5KQ0KcHJpbnQoInRoZXJlIGlzIGEgcG9zaXRpdmUgY29ycmVsYXRpb24gYmV0d2VlbiBzbW9raW5nIGFuZCBsb3cgYmlydGggd2VpZ2h0LiIpDQpsYncgPC0gbG0oeX54KQ0Kc3VtbWFyeShsYncpDQpwcmludCgic21va2luZyBleHBsYWlucyAxMi43MSUgb2YgYWxsIGxvd2JpcnRod2VpZ2h0cyBpbiBzbW9rZXJzLiIpDQoNCmBgYA0KDQojI21hcDQ6c21va2luZyBhbmQgZmFpci9wb29yIGhlYWx0aC4NCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpxdG0od3YsZmlsbCA9ICJGX19GYWlyX1BvIikNCnBvb3IuaGVhbHRoIDwtIGxtKGRmJEZfX0ZhaXJfUG9+ZGYkRl9fU21va2VycykNCnN1bW1hcnkocG9vci5oZWFsdGgpDQoNCiBwbG90KGRmJEZfX0ZhaXJfUG8sZGYkRl9fU21va2VycykNCiBwcmludCgidGhlcmUgaXMgYSBzdHJvbmcgcG9zaXRpdmUgY29ycmVsYXRpb24gYmV0d2VlbiBzbW9raW5nIGFuZCBmYWlyL3Bvb3IgaGVhbHRoIikNCiBwcmludCgic21va2luZyBhY2NvdW50cyBmb3IgNTYuOTElIG9mIHBvb3IgaGVhbHRoIGluIHNtb2tlcnMuIikNCmBgYA0KDQoNCiMjbWFwNTpzbW9raW5nIGFuZCBwaHlzaWNhbGx5IHVuaGVhbHRoeSBkYXlzLg0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCnF0bSh3dixmaWxsID0gIlBoeXNpY2FsbHkiKQ0KY29yLnRlc3QoZGYkRl9fU21va2VycyxkZiRQaHlzaWNhbGx5KQ0KcGggPC0gbG0oZGYkUGh5c2ljYWxseX5kZiRGX19TbW9rZXJzKQ0Kc3VtbWFyeShwaCkNCnBsb3QoZGYkUGh5c2ljYWxseSxkZiRGX19TbW9rZXJzKQ0KDQphYmxpbmUocGgsY29sPSJyZWQiKQ0Kc2VnbWVudHMoZGYkRl9fU21va2VycyxmaXR0ZWQocGgpLGRmJEZfX1Ntb2tlcnMsZGYkUGh5c2ljYWxseSxjb2w9InJlZCIsbHR5ID0gImRhc2hlZCIpDQpwcmludCgiVGhlcmUgaXMgYSBzdHJvbmcgcG9zaXRpdmUgY29ycmVsYXRpb24gYmV0d2VlbiBzbW9raW5nIGFuZCB0aGUgbm8uIG9mIHBoeXNpY2FsbHkgdW5oZWFsdGh5IGRheXMuIikNCnByaW50KCJzbW9raW5nIGV4cGxhaW5zIDUyLjU4JSBvZiBhbGwgcGh5c2ljYWxseSB1bmhlYWx0aHkgZGF5cyBpbiBzbW9rZXJzLiIpDQpgYGANCg0KIyMgbWFwNjogc21va2luZyBhbmQgbWFtbW9ncmFwaHkgdGVzdHMuDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KcXRtKHd2LGZpbGwgPSAiRl9fTWFtbW9nciIpDQp5PC0gZGYkRl9fTWFtbW9ncg0KeCA8LSBkZiRGX19TbW9rZXJzDQpjb3IudGVzdChkZiRGX19NYW1tb2dyLGRmJEZfX1Ntb2tlcnMpDQpwbG90KHgseSkNCm1hbW1vZ3JhcGh5IDwtIGxtKHl+eCkNCnN1bW1hcnkobWFtbW9ncmFwaHkpDQphYmxpbmUobWFtbW9ncmFwaHksY29sPSJyZWQiKQ0KcHJpbnQoIlRoZXJlIGlzIGEgbmVnYXRpdmUgY29ycmVsYXRpb24gYmV0d2VlbiBtYW1tb2dyYXBoeSB0ZXN0cyBhbmQgc21va2luZy4iKQ0KcHJpbnQoInNtb2tpbmcgZXhwbGFpbnMgMTUuMDQlIG9mIGFsbCB0aGUgbWFtbW9ncmFwaHkgdGVzdHMgZG9uZSBvbiBzbW9rZXJzLiIpDQpgYGANCg0KDQoNCg0KIyMgbWFwNzolIG9mIHNtb2tlcnMgaW4gY29tcGFyaXNvbiB0byB0aGVpciBlbXBsb3ltZW50IHN0YXR1cy4NCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpxdG0od3YsZmlsbD0iRl9fVW5lbXBsbyIpDQp5IDwtIGRmJEZfX1VuZW1wbG8NCnggPC0gZGYkRl9fU21va2Vycw0KdW5lbXBsb3ltZW50IDwtIGxtKHl+eCkNCnN1bW1hcnkodW5lbXBsb3ltZW50KQ0KcGxvdCh5LHgpDQpwcmludCgiVGhlcmUgaXMgYSBzdHJvbmcgcG9zaXRpdmUgY29ycmVsYXRpb24gYmV0d2VuIHNtb2tpbmcgYW5kIHVuZW1wbG95bWVudC4iKQ0KcHJpbnQoIlNtb2tpbmcgZXhwbGFpbnMgMjIuNjklIG9mIGFsbCB1bmVtcG95bWVudCBzdGF0dXMgaW4gc21va2Vycy4iKQ0KYGBgDQojIyAlIG9mIHNtb2tlcnMgaW4gY29tcGFyaXNvbiB0byB0aGVpciBlZHVjYXRpb24gbGV2ZWwuKFRoZSBkYXRhIGZvciB0aGlzIGdyYXBocyBpcyBmcm9tIENEQyxoZWFsdGggZGVwYXJ0bWVudCBvZiB3ZXN0IHZpcmdpbmlhIHN0YXRlLHN1bW1hcnkgc3RhdGlzdGljcy4pDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShwbG90bHkpDQoNCnAgPC0gcGxvdF9seSgNCiAgeCA9IGMoImxlc3MgaGlnaCBzY2hvb2wiLCAiaGlnaCBzY2hvb2wgZ3JhZCIsICJzb21lIGNvbGxlZ2UiLCJjb2xsZWdlIGdyYWQiKSwNCiAgeSA9IGMoNDAsIDI4LjIsIDI0LjcsMTMuNSksDQogIG5hbWUgPSAiZWR1Y2F0aW9uIiwNCiAgdHlwZSA9ICJiYXIiDQopDQpwDQpwcmludCgiTW9yZSBlZHVjYXRpb24gY29ycmVsYXRlcyB3aXRoIGxlc3Mgc21va2luZy4iKQ0KYGBgDQoNCg0KDQoNCiMjICUgb2Ygc21va2VycyBpbiBjb21wYXJpc29uIHRvIHRoZWlyIGluY29tZSBsZXZlbHMuDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShwbG90bHkpDQoNCnAgPC0gcGxvdF9seSgNCiAgeCA9IGMoImxlc3MgJDI1MDAwIiwgIiQyNS0kNDksOTk5IiwgIiQ1MC03NCw5OTkiLCI3NTAwMCAmIGFidiIpLA0KICB5ID0gYygzOC43LCAyNS4zLCAxOC45LDE0LjMpLA0KICBuYW1lID0gImluY29tZSIsDQogIHR5cGUgPSAiYmFyIg0KKQ0KcA0KcHJpbnQoIkhpZ2ggaW5jb21lIGNvcnJlbGF0ZXMgd2l0aCBsZXNzIHNtb2tpbmcuIikNCmBgYA0KDQoNCg0KIyMgbWFwIDg6c21va2luZyBhbmQgZGVudGlzdCByYXRlIHZpc2l0cy4NCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpxdG0od3YsZmlsbCA9ICJEZW50aXN0X1JhIikNCmRlbnRhbCA8LSBsbShkZiREZW50aXN0X1JhfmRmJEZfX1Ntb2tlcnMpDQpzdW1tYXJ5KGRlbnRhbCkNCnBsb3QoZGYkRGVudGlzdF9SYSxkZiRGX19TbW9rZXJzKQ0KYWJsaW5lKGRlbnRhbCxjb2w9InJlZCIpDQpjb3IudGVzdChkZiREZW50aXN0X1JhLGRmJEZfX1Ntb2tlcnMpDQp0LmNyaXQgPC0gcXQoMC45NzUsNTMpDQp0LmNyaXQNCnByaW50KCJ2ZXJ5IGxpdHRsZSBuZWdhdGl2ZSBjb3JyZWxhdGlvbiBiZXR3ZWVuIGRlbnRpc3QgdmlzaXQgcmF0ZXMgYW5kIHNtb2tpbmcuIikNCg0KYGBgDQoNCg0KDQojI21hcDk6c21va2luZyBhbmQgbWVudGFsIGhlYWx0aC4NCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQoNCnF0bSh3dixmaWxsID0gIk1lbnRhbF9IZWEiKQ0KbWVudGFsIDwtIGxtKGRmJE1lbnRhbF9IZWF+ZGYkRl9fU21va2VycykNCnN1bW1hcnkobWVudGFsKQ0KcGxvdChkZiRNZW50YWxfSGVhLGRmJEZfX1Ntb2tlcnMpDQpwcmludCgiVGhlcmUgaXMgbm8gY29ycmVsYXRpb24gYmV0d2VlbiBzbW9raW5nIGFuZCBtZW50YWwgaGVhbHRoLiIpDQoNCmBgYA0KDQoNCg0KDQoNCg0KDQoNCg0K